﻿package com.zouloux.core.masters
{
	import com.zouloux.core.IDisposable;
	import flash.events.EventDispatcher;
	
	/**
	 * ...
	 * @author ZoulouX
	 */
	public class MasterController extends EventDispatcher implements IController, IDisposable
	{
		/**
		 * La vue associée
		 */
		protected var _view				:IView;
		
		/**
		 * Les paramètres
		 */
		protected var _params			:Object 			= {};
		
		/**
		 * Les paramètres
		 */
		public function get params():Object { return _params; }
		public function set params(value:Object):void 
		{
			_params = value;
		}
		
		/**
		 * La vue associée à ce controller
		 */
		public function get view():IView { return _view; }
		public function set view(value:IView):void 
		{
			_view = value;
		}
		
		
		/**
		 * Le MasterController, à étendre
		 */
		public function MasterController ()
		{
			
		}
		
		/**
		 * Cette méthode est appelée avant l'action
		 */
		public function beforeAction ():void
		{
			
		}
		
		/**
		 * Cette méthode est appelée après l'action
		 */
		public function afterAction ():void
		{
			
		}
		
		/**
		 * L'action index, à overrider
		 */
		public function index ():void
		{
			
		}
		
		/**
		 * Supprimer cet objet
		 */
		public function dispose ():void
		{
			throw new Error("Can't dispose Controller");	
		}
	}
}